var num = 100;
var obj = {
    num: 200,
    inner: {
        num: 300,
        print: function () {
            console.log(this.num);
        }
    }
};


// 1)obj.inner.print();300
// 2) var func = obj.inner.print; func() 100
(obj.inner.print)();
// 4）(obj.inner.print = obj.inner.print)();100
/*obj.inner.print = obj.inner.print是一个赋值操作，它将obj.inner.print方法赋值给自己
（实际上没有改变任何东西）。但是，由于赋值表达式的结果是赋值后的值（即obj.inner.print函数）
，紧接着对这个结果进行调用（();部分）。这个调用和第二种情况一样，是一个全局函数调用*/
// 5） 利用obj.inner.print函数输出200 

